package com.shujia.scala

//import scala.io.StdIn

object Demo15Match {
  def main(args: Array[String]): Unit = {


    /**
      * 模式配置 可以匹配 对象 基本数据类型
      *
      * _  通配符
      */

    println("请输入学生的姓名")
    //    val name = StdIn.readLine()
    val name = "张三"

    name match {
      case "张三" => println("这个学生是张三")
      case "李四" => println("这个学生是李四")
      case _ => println("其他")
    }

    val str = name match {
      case "张三" => "这个学生是张三"
      case "李四" => "这个学生是李四"
      case _ => "其他"
    }

    println(str)


    val a: Any = 10

    //对变量类型进行匹配
    a match {
      case a: Integer => println("Integer类型")
      case a: String => println("字符串类型")
      case _ => println("其他类型")
    }


    val map = Map("001" -> "张三", "002" -> "李四")

    val value = map.get("004") match {
      case Some(v) => v //如果有值返回对应的值
      case None => "默认值"
    }

    println(value)


    /**
      * 如果是奇数 将奇数的值加1
      * 如果是偶数将偶数乘以2
      *
      */
    val list = List(1, 2, 3, 4, 5, 6, 7, 8, 9)

    val rlist = list.map(i => {

      val r = i % 2 match {
        case 1 => i + 1
        case 0 => i * 2
      }
      r
    })

    //简写
    val rlist1 = list.map(i => i % 2 match {
      case 1 => i + 1
      case 0 => i * 2
    })

    println(rlist)


  }
}
